part of 'tests_cubit.dart';

/// Events must be immutable and implement the [Equatable] interface.
@immutable
abstract class TestsEvent extends Equatable {}

/// Event that is dispatched when the Login widget is first created.
class TestsInitialEvent extends TestsEvent {
  @override
  List<Object?> get props => [];
}

class AddTestSuccessTapEvent extends TestsEvent {
  final Test test;

  AddTestSuccessTapEvent({required this.test});

  @override
  List<Object?> get props => [];
}

class AddTestFailedTapEvent extends TestsEvent {
  @override
  List<Object?> get props => [];
}

class AddTestLoadingTapEvent extends TestsEvent {
  @override
  List<Object?> get props => [];
}

class UpdateTestSuccessEvent extends TestsEvent {
  final Test test;

  UpdateTestSuccessEvent({required this.test});

  @override
  List<Object?> get props => [test];
}

class UpdateTestFailedEvent extends TestsEvent {
  @override
  List<Object?> get props => [];
}

class UpdateTestLoadingEvent extends TestsEvent {
  @override
  List<Object?> get props => [];
}

class DeleteTestSuccessEvent extends TestsEvent {
  final String? testId;

  DeleteTestSuccessEvent({required this.testId});

  @override
  List<Object?> get props => [testId];
}

class DeleteTestFailedEvent extends TestsEvent {
  @override
  List<Object?> get props => [];
}

class DeleteTestLoadingEvent extends TestsEvent {
  @override
  List<Object?> get props => [];
}

class ChangeSelectMode extends TestsEvent {
  final bool mod;

  ChangeSelectMode({required this.mod});

  @override
  List<Object?> get props => [mod];
}

class ChangeSelectedItem extends TestsEvent {
  final bool value;
  final Test test;

  ChangeSelectedItem({required this.value, required this.test});

  @override
  List<Object?> get props => [value, test];
}

class TabSelectAll extends TestsEvent {
  final bool value;

  TabSelectAll({required this.value});

  @override
  List<Object?> get props => [value];
}
